package com.sunspring.zdcall.mapper.master;

import com.sunspring.zdcall.bo.DeptBo;
import com.sunspring.zdcall.entity.ZdBaseCheckroom;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Author WuLei
 * @Date 2018/11/27  15:35
 */
public interface CheckRoomMapper {


    /**
     * 增加单个检查室
     * @param checkRoomInfo ZdBaseCheckroom
     * @return 受影响行数
     */
    int insertCheckSelective(ZdBaseCheckroom checkRoomInfo);

    /**
     * 根据roomId删除检查室
     * @param roomId 检查室id
     * @return 返回受影响行数
     */
    int deleteById(String roomId);

    /**
     * 更新检查室信息
     * @param checkRoomInfo ZdBaseCheckroom
     * @return 受影响行数
     */
    int updateById(ZdBaseCheckroom checkRoomInfo);


    /**
     * 条件查询
     * @param checkroom ZdBaseCheckroom
     * @return List<ZdBaseCheckroom>
     */
    List<ZdBaseCheckroom> selectSelective(ZdBaseCheckroom checkroom);

    /**
     * 根据检查室id和前缀查询数量
     * @param deptId 检查室ID
     * @param prefix 队列号前缀
     * @return 数量
     */
    int selectByCheckIdAndPrefix(@Param("deptId") String deptId, @Param("prefix") String prefix);

    /**
     * 根据科室Id删除检查室
     * @param deptId 科室Id
     * @return 受影响行数
     */
    int deleteByDeptId(String deptId);

    /**
     * 根据科室Id修改状态
     * @param deptId 科室Id
     * @param code 状态
     * @return 受影响行数
     */
    int updateStateByDeptId(@Param("deptId")String deptId, @Param("state") int code);


    /**
     * 查询所有启用的科室和检查室
     * @return List<DeptBo>
     */
    List<DeptBo> selectDeptAndCheckroom();

    /**
     * 根据科室Id查询检查室数量
     * @param deptId 科室ID
     * @return 检查室数量
     */
    int selectCountByDeptId(String deptId);

}
